
/*
 * 门诊医生系统键盘事件控制
 * 新开医嘱页面，键盘上下控制，在trControl.js中；
 * */

// 注册全局键盘事件
//var isfunction = false;
document.onkeydown=function(event){
	  var e = event || window.event || arguments.callee.caller.arguments[0];
	if (e && e.keyCode == 27)
	{ // 按 Esc //开始执行功能键，不做输入等操作
		var isShow = false; // 用来判断弹出层

		$(".layer_container").each(function(i, e)
		{
			if ($(e).is(":visible"))
			{
				isShow = true;
			}
		})
		if ((($(".smart_search").is(":hidden")) && $(".drop-container").is(":hidden")) && (!isShow) && ($(".selectDiv").is(":hidden"))&&$(".layui-layer-dialog").length <1)
		{
			if ($(".select2-container--open").length < 1)
			{
				cancelAdvice();
			}
		}
		else if (isShow)
		{
			$(".footer_container").find(".btn-white").trigger("click");
		}
		else if ($(".layui-layer-dialog").is(":visible")) // 一般弹出层
		{

			$(".layui-layer-btn").find(".layui-layer-btn1").trigger("click");
		}
		else
		{
			$(".drop-container").hide();
			$(".selectDiv").hide();
			$("#cover").addClass("hidden");
			$(".smart_search").hide();
			$('#new_order_list a[href="#' + topTab + '"]').focus();
			adviceCheck();
		}
	}
		else if (e && e.altKey && e.keyCode == 97)
		{ // 1 病历
		topTab = "Emr";
		$('#new_order_list a[href="#' + topTab + '"]').trigger("click");
    	  }else if(e && e.altKey && e.keyCode === 98){ // 2 检验
    		  topTab = "Jianyan";
    		  $('#new_order_list a[href="#' + topTab + '"]').trigger("click");
    	  }else if(e && e.altKey  && e.keyCode === 99){ // 3 检查
    		  
    		  topTab = "Jiancha";
    		  $('#new_order_list a[href="#' + topTab + '"]').trigger("click");
    	  }else if(e && e.altKey && e.keyCode === 100){ // 4 西药
    		  topTab = "Xiyao";
    		  
    		  $('#new_order_list a[href="#' + topTab + '"]').trigger("click");
    	  }else if(e && e.altKey && e.keyCode === 101){ // 5 中药
    		  
    		  topTab = "Zhongyao";
    		  $('#new_order_list a[href="#' + topTab + '"]').trigger("click");
    	  }else if(e && e.altKey && e.keyCode === 102){ // 6 手术
    		  
    		  topTab = "Shoushu";
    		  $('#new_order_list a[href="#' + topTab + '"]').trigger("click");
    	  }else if(e && e.altKey && e.keyCode === 103){ // 7 治疗
    		  
    		  topTab = "Zhiliao";
    		  $('#new_order_list a[href="#' + topTab + '"]').trigger("click");
    	  }
          // 发送\保存
    	  else if(e && e.keyCode === 115){ // F4发送
				  
				  $("#foot-buttonGroup").find("#sendAdvice_btn").trigger("click");
    	  }
		else if (e && e.keyCode === 120){ // F9保存
				if ($(".layer_container").is(":visible")) // 一般弹出层
				{
		
					$(".footer_container").find(".btn-green").trigger("click");
				}
				if ($(".layui-layer-dialog").is(":visible")) // 一般弹出层
				{
					
					$(".layui-layer-btn").find(".layui-layer-btn0").trigger("click");
				}
				else
				{
					$("#foot-buttonGroup").find("#saveAdvice_btn").trigger("click");
				}
		
			}else if(e && e.keyCode === 121&&simpaleIndex){ // F10 刷医保卡
				readcard();
				
			}else if(e && e.keyCode === 118&&simpaleIndex){ // 刷身份证
				readIdentityNumber()
				
			}else if(e && e.keyCode === 119&&simpaleIndex){// 刷就诊卡
				readMemberShipCard();
			}
			else if(e && e.keyCode === 40){ // 按向下箭头
    		  if((($(".smart_search").is(":hidden"))&&$(".drop-container").is(":hidden"))&&($(".drop-container").is(":hidden"))&&($(".selectDiv").is(":hidden"))){
    			  if($(".select2-container--open").length<1)
    			  {
    				  adviceInputFocus();
    			  }
    		  }else  if($(".drop-container").is(":visible")){
    			  
    			  var base={};
    			  if($('#diagnose-smart-dorpid').is(":visible")){   //诊断的智能搜索
    				  base.step = 1;// 向下移动标志
    				  base.diagnoseInputid = "tagsinput_item";
    				  smartSelectedTrStatu(base);
    			  }else{
    				  
    				  // 下拉框动态加载事件，表格tr选中状态
    				  var cid = $(".drop-container").attr("id");
    				  base.step = 1;// 向下移动标志
    				  base.cid = cid;// 容器
    				  selectedTrStatu(base);
    			  }
    			  
    		  }else if($(".selectDiv").is(":visible")){
    			  $(".selectDiv").find("table tbody").find(".choseedTr").next().addClass("choseedTr").siblings().removeClass("choseedTr");
    		  }
    		  else if($(".smart_search").is(":visible")){// 智能搜索
    			  var selectedId = $("#smart_search_table").jqGrid("getGridParam", "selrow");
    			  var all = jQuery("#smart_search_table").jqGrid('getDataIDs');
    			  var index = ++selectedId;
    			  if(index<= all.length){
    				  $("#smart_search_table").jqGrid("setSelection",index);
    				  var Vobj = {
    							tableid : "smart_search_table",
    							index : index,
    					 		contclass : "smart_search"
    					 }
    				  VSrollBarpos(Vobj);
    			  }
    		  }
    		  else if($(".selectTab").is(":visible")){ // 挂号搜索
    			  var selectedId = $("#vaa05table").jqGrid("getGridParam", "selrow");
    			  var all = jQuery("#vaa05table").jqGrid('getDataIDs');
    			  var index = ++selectedId
    			  if(index<= all.length){
    				  $("#vaa05table").jqGrid("setSelection", index);
    			  }
    		  }
    	  }else if(e && e.keyCode === 38){ // 向上箭头
    		  if($(".drop-container").is(":visible")){
    			  var base={};
    			  if($('#diagnose-smart-dorpid').is(":visible")){   //诊断的智能搜索
    				  base.step = -1;// 向下移动标志
    				  base.diagnoseInputid = "tagsinput_item";
    				  smartSelectedTrStatu(base);
    			  }else{
    				  
    				  base.step = -1;// 向上移动标志
    				  base.cid = "drop-container";// 容器
    				  selectedTrStatu(base);
    			  }
    			  
    		  }else if($(".selectDiv").is(":visible")){
    			  $(".selectDiv").find("table tbody").find(".choseedTr").prev().addClass("choseedTr").siblings().removeClass("choseedTr");
    		  }
    		  else if($(".smart_search").is(":visible")){// 智能搜索
    			  var selectedId = $("#smart_search_table").jqGrid("getGridParam", "selrow");
    			  var all = jQuery("#smart_search_table").jqGrid('getDataIDs');
    			  var index = --selectedId
    			  if(index>0){
    				  
    				  $("#smart_search_table").jqGrid("setSelection", index);
    				  var Vobj = {
  							tableid : "smart_search_table",
  							index : index,
  					 		contclass : "smart_search"
  					 	}
    				  VSrollBarpos(Vobj);
    			  }
    		  }
    		  else if($(".selectTab").is(":visible")){
    			  var selectedId = $("#vaa05table").jqGrid("getGridParam", "selrow");
    			  var all = jQuery("#vaa05table").jqGrid('getDataIDs');
    			  var index = --selectedId
    			  if(index>0){
    				  $("#vaa05table").jqGrid("setSelection", index);
    			  }
    		  }
    	  }else if(e && e.keyCode === 13){ // 回车事件
    		   if($(".drop-container").is(":visible")&& (!$(".drop-container input[type='text']").is(":focus")) ){
    			   var ids = getTableId();
    			  var normal =   $("#"+ids.tableid).find(".choseedTr");
    			  if(normal.length>0){ //一般表格
					  $("#"+ids.tableid).find(".choseedTr").trigger("dblclick");
//    				  if((topTab=="Xiyao")||(topTab=="Zhongyao")){
//    					  addBbxInfoYaopin(id);
//    				  }else{
//    					  addBbxInfoFeiyaopin(id);
//    				  }
    			  }else{ //jqgride表格
        			  var rowid = $("#"+ids.tableid).jqGrid("getGridParam", "selrow");
        			  $("#"+rowid,'#'+ids.tableid).trigger("dblclick");
    			  }
    		  }
    		  // 诊断信息
    		  else if($(".selectDiv").is(":visible")){
    			  // 门诊诊断信息编辑添加
    			  if((!$(".bootstrap-tagsinput").find("input").val())||indexZhenduan||indexBanRy){
    				  var id= $(".selectDiv").find("table tbody").find(".choseedTr").attr("data-id");
    				  var name = $(".selectDiv").find("table tbody").find(".choseedTr").find("td:eq(1)").text();
    				  $(".selectDiv").find("table tbody").find(".choseedTr").trigger("dblclick");
    				  
    			  }
    			  
    		  }
    		  else if($(".selectTab").is(":visible") ){// 智能搜索
    			  var rowid = $("#vaa05table").jqGrid("getGridParam", "selrow");
    			  $("#"+rowid,'#vaa05table').trigger("dblclick");
    		  }
    		  else if($("#member_consumption").is(":visible") )
    		  {
    			  $("#makesure").click();
    		  }
    		  else if($(".smart_search").is(":visible") ){// 智能搜索
    			  textareaStop(e);
    			  var rowid = $("#smart_search_table").jqGrid("getGridParam", "selrow");
    			  $("#"+rowid,'#smart_search_table').trigger("dblclick");
    		  }
    		  else if ($(".layer_container").is(":visible")) // 一般弹出层
				{
    				if($("#mzserach").length>0){ // 挂号搜索
    					if($("#saveGuahao").find(".keycontrol:visible").last().is(":focus")&&$("#saveGuahao").find(".keycontrol:visible").last().val()){
    						
    						$(".footer_container").find(".btn-green").trigger("click");
    					}
    					
    				}else if($("#p_vaa03").length>0){
    					
    					if($("#edit_patient_form_info").find(".keycontrol:visible").last().is(":focus")&&$("#edit_patient_form_info").find(".keycontrol:visible").last().val()){
    						
    						$(".footer_container").find(".btn-green").trigger("click");
    					}
    				}else if($("#neworder_name").length>0){ // 医生级别查询弹出层
    					
    					if(!$("#neworder_name").val() && !$("#neworder_password").val()){
    						
    						 $("#neworder_name").focus();
    						 
    					}else if($("#neworder_name").val() && $("#neworder_name").is(":focus")){
    						  
    						  $("#neworder_password").focus();
    					}else if($("#neworder_name").val() && $("#neworder_password").val()){
    						  $(".footer_container").find(".btn-green").trigger("click");
    					}
    					
    				}else if($("#member_consumption").is(":hidden")){ // 会员卡刷卡
    					// 隐藏啥都不做
    				}else if($(".drop-container").is(":visible")&& $(".drop-container input[type='text']").is(":focus")){ //layer弹出层上还有drop弹出层
    					
					}else if($(".slip-down-container").is(":visible")){ //layer弹出层上还有drop弹出层
						
					}
    				else{
    					
    					$(".footer_container").find(".btn-green").trigger("click");
    				}
				}
    		  else if ($(".layui-layer-dialog").length >0 ||$(".layui-layer-page").length >0) // 一般弹出层确定等
				{
// textareaStop(e);
					$(".layui-layer-btn").find(".layui-layer-btn0").trigger("click");
				}
    		  
    	  } 
};

// 表格上下移动tr选中事件
//tableid;
function getTableId(){
	var idsobj={};
	var tableid,dropid;
	if($(".drop-container").hasClass("drop_simple")){  //tpl2
		tableid = $(".drop_simple").find(".table").attr("id");
		dropid = $(".drop_simple").attr("id");
		
	}else{
		tableid = $(".drop-container").find(".drop-right .table").attr("id")?$(".drop-container").find(".drop-right .table").attr("id"):$(".drop-container").find(".table").attr("id");
		dropid = $(".drop-container").attr("id");
	}
	idsobj.tableid = tableid;
	idsobj.dropid = dropid;
    return idsobj;
}
function selectedTrStatu(base){
	var ids = getTableId();
	if($("#"+ids.tableid).find("tbody tr").length >0){
		var index;
		var inputid = $("#"+ids.dropid).find("input[type='text']").attr("id");
		$("#"+inputid).blur();
		var selectedId = $("#"+ids.tableid).jqGrid("getGridParam", "selrow");
		if(selectedId){ // 判断是jqgride表格
			var all = jQuery("#"+ids.tableid).jqGrid('getDataIDs');
			if(base.step == "1"){ // 向下移动
				index = ++selectedId
				if(index<= all.length){
					$("#"+ids.tableid).jqGrid("setSelection", index);
				}
			}else if(base.step == "-1"){ // 向上移动
				index = --selectedId;
				if(index >0){
					$("#"+ids.tableid).jqGrid("setSelection", index);
				}else{
					$("#"+inputid).focus();
				}
			}
		 var Vobj = {
				tableid : ids.tableid,
				index : index,
		 		contclass : base.cid
		 }
		 VSrollBarpos(Vobj);
			
		}else{ // 普通表格
			if(base.step == "1"){ // 向下移动
				debugger;
				var choseedTr = $("#"+ids.tableid).find("tbody").find(".choseedTr");
				if(choseedTr.length >0){
					choseedTr.next().addClass("choseedTr").siblings().removeClass("choseedTr");
				}else{
					$("#"+ids.tableid).find("tbody tr:eq(0)").addClass("choseedTr").siblings().removeClass("choseedTr");
				}
				
			}else if(base.step == "-1"){ // 向上移动
				var prevele = $("#"+ids.tableid).find("tbody").find(".choseedTr").prev();
				if(prevele.length>0){
					
					prevele.addClass("choseedTr").siblings().removeClass("choseedTr");
				}else{
					// input聚焦
					$("#"+ids.tableid).find("tbody").find(".choseedTr").removeClass("choseedTr");
					$("#"+inputid).select();
				}
			}
			index = $("#"+ids.tableid).find("tbody").find(".choseedTr").index();
		}
		
	}
	
}
//诊断智能搜索表格键盘控制，默认没有选中一行
function smartSelectedTrStatu(base){
	var tableid = $(".drop-container").find(".table").attr("id");
	var choseTR = $("#"+tableid).find("tbody").find(".choseedTr");
	if(choseTR.length <1 && base.step == "1"){  //没有的情况下默认第一行选中
		$("#"+tableid).find("tbody tr:eq(0)").addClass("choseedTr");
	}
	else if(base.step == "1"){ // 向下移动
		$("#"+tableid).find("tbody").find(".choseedTr").next().addClass("choseedTr").siblings().removeClass("choseedTr");
		
	}else if(base.step == "-1"){ // 向上移动
		var prevele = $("#"+tableid).find("tbody").find(".choseedTr").prev();
		if(prevele.length>0){
			
			prevele.addClass("choseedTr").siblings().removeClass("choseedTr");
		}else{
			// input聚焦
			$("#"+tableid).find("tbody").find(".choseedTr").removeClass("choseedTr");
			$("#"+base.diagnoseInputid).find(".tagsinput_event").select();
		}
	}
}
      
      
    // 设置表格容器的滚动条
function setScrollBarPos($table, index){
          var $items = $table.find('tbody tr:eq(0) td');
          var $hightLightItem = $items.eq(index);
          var lightItem_leftPos = $hightLightItem.position().left;
          var table_container = $table.parent('.main-table-container');
          var table_container_width = table_container.width();
          var currScrollLeft = table_container.scrollLeft();

          var heightLightItem_width = $hightLightItem.outerWidth();
          var posLeft = lightItem_leftPos + heightLightItem_width;

          if(posLeft+150 >= table_container_width){
              var diffWidth = posLeft - table_container_width;
              table_container.scrollLeft(currScrollLeft + diffWidth + 150);
          }

          if(lightItem_leftPos-150 < 0){
              var diffWidth = lightItem_leftPos;
              table_container.scrollLeft(currScrollLeft + diffWidth - 150);
          }
      }
    
 function VSrollBarpos(vboj){
	    var dropdownList_container =$("."+vboj.contclass);
	    dropdownList_container.find('.ui-jqgrid-bdiv').children().removeAttr("style");
	 	var $hightLightItem = $("#"+vboj.tableid).find("#"+vboj.index);
		var lightItem_topPos = $hightLightItem.position().top;
		var dropdownList_group_height = dropdownList_container.find('.ui-jqgrid-bdiv').height();
		var currScrollTop = dropdownList_container.find('.ui-jqgrid-bdiv').scrollTop();

		if((lightItem_topPos+30)>=dropdownList_group_height){
			var diffHeight = lightItem_topPos - dropdownList_group_height;
			dropdownList_container.find('.ui-jqgrid-bdiv').scrollTop(currScrollTop+$hightLightItem.outerHeight()+diffHeight);
		}

		if(lightItem_topPos < 1){
			debugger;
			var diffHeight = lightItem_topPos;
			dropdownList_container.find('.ui-jqgrid-bdiv').scrollTop(currScrollTop+diffHeight);
		}
 }     
  
 function textareaStop(e){  
	    var code;  
	    if (!e) var  e = window.event;  
	    if (e.keyCode) code = e.keyCode;  
	    else if (e.which) code = e.which;  
	    if(code==13 && window.event){  
	        e.returnValue = false;  
	    }else if(code==13){  
	        e.preventDefault();  
	    } 
	}
      
      